package first.bishiti;

public class test1 {
    /** 使用动态规划
     F（i）：以array[i]为末尾元素的子数组的和的最大值，子数组的元素的相对位置不变
     F（i）=max（F（i-1）+array[i] ， array[i]）
     res：所有子数组的和的最大值
     res=max（res，F（i））
     **/
    public static void main(String[] args) {
        int[] a = {1, -2, 3, 10, -4, 7, 2, -5};
        System.out.println(findArray(a));
    }

    public static int findArray(int[] array) {
        int res = array[0];	//记录当前所有子数组的和的最大值
        int max = array[0];	//包含array[i]的连续数组最大值
        for (int i = 1; i < array.length; i++) {
            max=Math.max(max+array[i], array[i]);
            res=Math.max(max, res);
        }
        return res;
    }

//    tcp是一种通讯方式，也叫做tcp协议，是用来规范socket数据交互的。
//    socket是用来做通讯的,它的作用是发送数据和接受数据。
//    服务端要做的工作是：
//        1.创建服务端serversocket，指定端口号和ip地址；
//        2.调用accept()方法开始监听；
//        3.调用getInputStream()方法 获取输入流，读取客户端信息；
//        4.调用getOutputStream()方法获取输出流。响应客户端的请求；
//        5.关闭资源。
//    客户端要做的工作是：
//        1.创建客户端Socket，指定服务器端口号和地址；
//        2.调用getOutputStream()方法获取输出流，向服务器端发送信息；
//        3.调用getInputStream()方法获取输入流，并读取服务器端的响应信息；
//        4.关闭资源。

}
